/**
 * 基础任务等待测试
 * */
#include "vSwTask.h"
#include "stdio.h"

#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif

sw_task_t sw1, sw2 = 0;
int sw1_flag = 0;
int sw2_flag = 1;


void sw1_task(){
    vSW_BEGIN(sw1);

        vSW_WAIT_UNTIL(sw1, sw2_flag != 0);
        printf("SwTask 1 running\n");

        sw2_flag = 0;
        sw1_flag = 1;

    vSW_END(sw1);
}

void sw2_task(){
    vSW_BEGIN(sw2);

        vSW_WAIT_UNTIL(sw2, sw1_flag != 0);
        printf("SwTask 2 running\n");

        sw1_flag = 0;
        sw2_flag = 1;

    vSW_END(sw2);
}

void sleep_1s(){
    #ifdef _WIN32
        Sleep(1000);
    #else
        sleep(1);
    #endif
}

int main(){
    while (1){
        sw1_task();
        sleep_1s();

        sw2_task();
        sleep_1s();
    }

    return 0;
}